package com.atguigu.test5;

/**
 * @author 路飞
 * @date 2024/3/28 11:40
 * @description 2.	一个球从100米高度自由落下，每次落地后反跳回原高度的一半，再落下，
 * 求它在第10次落地时，共经过多少米？
 * 第10次反弹多高？
 *
 * 0.09765625
 * 10
 * 299.609375
 *
 */
public class Exer2 {
    public static void main(String[] args) {
        v2();
    }

    private static void v1() {
        double height = 100;
        double sum = 0;
        int count = 0;

        int num = 10;
        boolean flag = true;
        while (true) {
            sum += height;
            count++;
            height /= 2;
            if (count == num && flag) {
                System.out.println(height);
                System.out.println(count);
                System.out.println(sum);
                return;
            }

            if (height == 0) {
                break;
            }
            sum += height;
        }
        System.out.println(height);
        System.out.println(count);
        System.out.println(sum);
    }

    /**
     * @description
     * 第10次落地时，经过了：299.609375米
     * 第10次反弹的高度是：0.09765625米
     */
    public static void v2() {
        double height = 100;
        double distance = 0;
        int count = 10;
        for (int i = 1; i <= count; i++) {
            distance += height;// 加落下的距离
            height = height / 2;// 弹起的高度 第i次弹起的高度
            if (i != count) {
                distance += height; // 加弹起的距离
            }
        }
        System.out.println("第" + count + "次落地时，经过了：" + distance + "米");
        System.out.println("第" + count + "次反弹的高度是：" + height + "米");
    }

}
